
/**
 * 获取本月第一天星期几
 * @param {*} date  日期对象
 * @returns  the day of the week
 */
function getFirstDayWeek(date) {
    date = new Date(date);
    date.setDate(1);
    var week = date.getDay();
    return week; // 0-6
}

// 封装一个函数, 传入一个日期对象 => 上个月有多少天
// 本月的第0天就是上个月最后一天

function getLastMonthDays(date) {
    date = new Date(date);
    date.setDate(0);  //本月的第0天就是上个月最后一天
    return date.getDate();
}

// 封装一个函数,传入一个日期对象 => 返回当前月有多少天
// 下个月的第0天就是本月的最后一天

function getThisMonthDays(date) {
    date = new Date(date); // 2022-5-31
    // 月份切换的问题问题:
    // 大月切小月的时候,31 -> 30|28|29,如果当前日期超出小月的最大值 会自动换算  -> 结果出现误差
    // 解决方法: 反正日期都是要改的 => 提前将日期设置为每个月都有的 1

    date.setDate(1); // 2022-5-1

    //当前月的下个月 (只切月份 -> 日期还是原日期)
    date.setMonth(date.getMonth() + 1);  // 2022-6-1 
    date.setDate(0);  //下个月的第0天就是本月的最后一天  2022-6-0 => 2022-5-31
    return date.getDate();
}
